The present application is directed to data communications, and more particularly to a system, method, and apparatus for detecting and recovering from false synchronization using packet header information.
As the speed of Internet traffic increases, on-demand television and video are becoming closer and closer to reality. In addition to the increasing speed of Internet transactions, continued advancement of motion picture content compression standards permit high quality picture and sound while significantly reducing the amount of data that must be transmitted. A compression standard for television and video signals was developed by the Moving Picture Experts Group (MPEG), and is known as MPEG-2. The MPEG-2 compression scheme compresses and packetizes the video content into MPEG-2 packets.
The MPEG-2 standard has a number of variants based on the specific transmission channel. For instance, the ITU specification J.83 Annex B (the J.83 specification) was developed for the transmission of digital data over a cable channel. The J.83 specification prescribes application of a parity checksum byte and forward error correction to the MPEG-2 packets, and is hereby incorporated by reference for all purposes. The foregoing allows for additional error detection and simultaneous error detection and synchronization.
The MPEG-2 packets are received as a continuous stream of serial data. Recovery of the original video content requires breaking the continuous stream of serial data into the individual constituent packets. Given the starting point of an MPEG-2 packet, the receiver can break the continuous stream into the individual constituent data packets by simply counting the number of bits received because the MPEG-2 packets are of a known uniform length (1504 bits). The starting point of a packet is determined by calculation and detection of a predetermined eight-bit checksum. Detection of the predetermined checksum is indicative of the beginning of an MPEG-2 packet. Detection of the predetermined checksum is used to establish MPEG synchronization and lock alignment. Once alignment has been locked, the absence of the predetermined checksum at expected locations (every 1504 bits) is indicative of bit errors.
Presently, MPEG synchronization is conditioned on receipt of a number of consecutive checksums. Each data packet contains 188 bytes or 1,504 bits. A checksum circuit could start looking at an arbitrary point within those 1,504 bits with equal probability. Since there is only one correct phase, 1,503 incorrect phases, and only 256 possible checksums, the first checksum reported as correct is likely to be in an incorrect phase. However, assuming the MPEG packets are not all identical, there is only a one in 256 chance that the next checksum will be reported as being correct if the synchronization is incorrect. There is a one in 65,536 chance that the next two correct checksums will be reported correct. The probability that the next five packets will be reported correct is less than one in a trillion. Since this probability rapidly approaches zero, false synchronization in this case can easily be avoided.
However, if five identical packets are received consecutively, the odds dramatically shift. The probability of synchronizing incorrectly the first attempt is the same, roughly 1,248 in 1,504. However, subsequent packets each guarantee the same checksum since data in the subsequent packets are the same. So, even after five packets, the probability of incorrectly synchronizing is still significant. One example where a number of consecutive identical packets are transmitted would be in a video on demand environment where channel usage varies depending on customer demand and MPEG NULL packets are used to fill up the unused bandwidth.
Another problem with conditioning MPEG synchronization on a number of consecutive checksums, is that calculation of many checksums requires a significant amount of time. The foregoing results in noticeable delays that are extremely undesirable during television channel change operations.
Another technique counts a given number of bad checksums out of a fixed window. For example, bad checksums are counted within a sliding window of 255 checksums. If the number of bad checksums exceeds a certain number, e.g., 50, the current synchronization is abandoned and resynchronization is attempted. The drawback to this approach is that normal bit errors can cause bad checksums and therefore, cause a resynchronization under noisy conditions, even where synchronization is correct.
Accordingly, it would be advantageous if false synchronization detection and recovery are guaranteed in a sufficient amount of time.
Further limitations and disadvantages of conventional and traditional approaches will become apparent to one of skill in the art, through comparison of such systems with embodiments of the present invention as set forth in the remainder of the present application with reference to the drawings.